﻿using System;
using System.Linq;
using System.Text;
using Dost.Khcn.WebOnline.Data;

namespace Dost.Khcn.WebOnline
{
    public partial class ChuyenGiaDetails : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int chuyenGiaId;
            int.TryParse(Request.Params["id"], out chuyenGiaId);
            if (chuyenGiaId <= 0) return;

            var chuyenGiaInfo = GetInfoDetailsById(chuyenGiaId);
            if (chuyenGiaInfo == null) return;

            var html = GenerateHtml(chuyenGiaInfo);
            
            Response.Write(html);
        }

        private static ChuyenGiaDetailView GetInfoDetailsById(int id)
        {
            ChuyenGiaDetailView chuyenGiaInfo;

            using (var db = new NlkhOnlineEntities())
            {
                chuyenGiaInfo = db.ChuyenGiaDetailViews.FirstOrDefault(x => x.Id == id);
                if (chuyenGiaInfo == null) return null;

                chuyenGiaInfo.QuaTrinhCongTacList = db.QuaTrinhCongTacs.Where(x => x.ChuyenGiaId == id).ToList();
                chuyenGiaInfo.CongTrinhNghienCuuList = db.CongTrinhNghienCuus.Where(x => x.ChuyenGiaId == id).ToList();
                chuyenGiaInfo.DeTaiCapNhaNuocList = db.DeTaiCapNhaNuocViews.Where(x => x.ChuyenGiaId == id).ToList();
                chuyenGiaInfo.DeTaiCapTinhList = db.DeTaiCapTinhViews.Where(x => x.ChuyenGiaId == id).ToList();
                chuyenGiaInfo.GiaiThuongKhcnList = db.GiaiThuongKhcns.Where(x => x.ChuyenGiaId == id).ToList();
                //chuyenGiaInfo.FileList = db.ChuyenGiaFileViews.Where(x => x.ChuyenGiaId == id).ToList();
            }

            return chuyenGiaInfo;
        }

        private static string GenerateHtml(ChuyenGiaDetailView chuyenGia)
        {
            if (chuyenGia == null) return string.Empty;

            var sbHmtl = new StringBuilder();
            // thong tin chung
            sbHmtl.Append("<html><body style='font-size:11px !important;font-family:Tahoma !important;'><head><meta charset=\"utf-8\" /></head>");
            sbHmtl.Append("<div style='text-align:right'><a href='javascript:window.history.back();'>Quay lại trang tra cứu</a></div>");
            sbHmtl.Append("<table>");
            sbHmtl.Append("<tr><td colspan='2'><p><strong>Thông tin chung:</strong></p></td></tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Họ, tên chuyên gia: {0}</td>", chuyenGia.HoTen);
            sbHmtl.AppendFormat("<td>Giới tính: {0}</td>", chuyenGia.GioiTinh ? "Nam" : "Nữ");
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Năm sinh: {0}</td>", chuyenGia.NamSinh);
            sbHmtl.AppendFormat("<td>Dân tộc: {0}</td>", chuyenGia.DanToc);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td colspan='2'>Địa chỉ liên hệ: {0}</td>", chuyenGia.DiaChi);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Điện thoại: {0}</td>", chuyenGia.DienThoai);
            sbHmtl.AppendFormat("<td>Email: {0}</td>", chuyenGia.Email);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Học hàm: {0}</td>", chuyenGia.TenHocHam);
            sbHmtl.AppendFormat("<td>Năm được phong học hàm: {0}</td>", chuyenGia.NamHocHam);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td colspan='2'>Học vị: {0}</td>", chuyenGia.TenHocVi);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Chức vụ: {0}</td>", chuyenGia.ChucVu);
            sbHmtl.AppendFormat("<td>Chức danh nghiên cứu: {0}</td>", chuyenGia.ChucDanh);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td colspan='2'>Đơn vị đang công tác (hoặc trước khi nghỉ hưu):</td>");
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Tên: {0}</td>", chuyenGia.TenDonVi);
            sbHmtl.AppendFormat("<td>Điện thoại: {0}</td>", chuyenGia.DienThoaiDonVi);
            sbHmtl.Append("</tr>");
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td colspan='2'>Lĩnh vực nghiên cứu chính: {0}</td>", chuyenGia.TenLinhVuc);
            sbHmtl.Append("</tr>");

            sbHmtl.Append("<tr><td colspan='2'><p><strong>Quá trình đào tạo:</strong></p></td></tr>");
            sbHmtl.AppendFormat("<tr><td colspan='2'>Chuyên ngành đào tạo: {0}</td></tr>", chuyenGia.TenChuyenNganh);
            sbHmtl.AppendFormat("<tr><td colspan='2'>Hình thức đào tạo: {0}</td></tr>", chuyenGia.TenHinhThucDaoTao);
            sbHmtl.AppendFormat("<tr><td colspan='2'>Tên cơ sở đào tạo: {0}</td></tr>", chuyenGia.TenCoSoDaoTao);
            sbHmtl.Append("<tr>");
            sbHmtl.AppendFormat("<td>Nước cấp: {0}</td>", chuyenGia.TenQuocGia);
            sbHmtl.AppendFormat("<td>Năm nhận học vị: {0}</td>", chuyenGia.NamHocVi);
            sbHmtl.Append("</tr>");
            sbHmtl.AppendFormat("<tr><td colspan='2'>Tên luận án: {0}</td></tr>", chuyenGia.TenLuanAn);

            sbHmtl.Append("<tr><td colspan='2'><p><strong>Quá trình công tác:</strong></p></td></tr>");
            sbHmtl.Append("<tr><td colspan='2'>");
            sbHmtl.Append("<table cellpadding='0' cellspacing='0' width='97%' style='border-collapse:collapse;'>");
            sbHmtl.Append("<tr style='text-align: center;'><td style='border:1px solid;'>Thời gian:</td><td style='border:1px solid;'>Tên tổ chức:</td><td style='border:1px solid;'>Địa chỉ:</td></tr>");
            if (chuyenGia.QuaTrinhCongTacList != null)
            {
                foreach (var quaTrinhCongTac in chuyenGia.QuaTrinhCongTacList)
                {
                    sbHmtl.AppendFormat("<tr><td style='border:1px solid;'>{0}</td><td style='border:1px solid;'>{1}</td><td style='border:1px solid;'>{2}</td></tr>",
                        quaTrinhCongTac.ThoiGian, quaTrinhCongTac.TenToChuc, quaTrinhCongTac.DiaChi);
                }
            }
            sbHmtl.Append("</table>");
            sbHmtl.Append("</td></tr>");

            sbHmtl.AppendFormat("<tr><td colspan='2'>Trình độ ngoại ngữ: {0}</td></tr>", chuyenGia.NgoaiNgu);

            sbHmtl.Append("<tr><td colspan='2'><strong>Hoạt động chuyên ngành:</strong></td></tr>");
            sbHmtl.Append("<tr><td colspan='2'><p>Tên công trình nghiên cứu đã công bố:</p></td></tr>");
            sbHmtl.Append("<tr><td colspan='2'>");
            sbHmtl.Append("<table cellpadding='0' cellspacing='0' width='97%' style='border-collapse:collapse;'>");
            sbHmtl.Append("<tr style='text-align: center;'><td style='border:1px solid;'>Tên công trình</td><td style='border:1px solid;'>Nơi công bố<br />(tên tạp chí đã đăng công trình)</td><td style='border:1px solid;'>Năm công bố</td><td style='border:1px solid;'>Tác giả hoặc đồng tác giả</td></tr>");
            if (chuyenGia.CongTrinhNghienCuuList != null)
            {
                foreach (var congTrinh in chuyenGia.CongTrinhNghienCuuList)
                {
                    sbHmtl.AppendFormat("<tr><td style='border:1px solid;'>{0}</td><td style='border:1px solid;'>{1}</td><td style='border:1px solid;'>{2}</td><td style='border:1px solid;'>{3}</td></tr>",
                        congTrinh.TenCongTrinh, congTrinh.NoiCongBo, congTrinh.NamCongBo, congTrinh.TacGia);
                }
            }
            sbHmtl.Append("</table>");
            sbHmtl.Append("</td></tr>");

            sbHmtl.Append("<tr><td colspan='2' style='margin-top:10px;'>Dự án/đề tài cấp nhà nước/cấp Bộ đã thực hiện:</td></tr>");
            sbHmtl.Append("<tr><td colspan='2'>");
            sbHmtl.Append("<table cellpadding='0' cellspacing='0' width='97%' style='border-collapse:collapse;'>");
            sbHmtl.Append("<tr style='text-align: center;'><td style='border:1px solid;'>Tên dự án/đề tài</td><td style='border:1px solid;'>Chuyên ngành/lĩnh vực</td><td style='border:1px solid;'>Năm thực hiện</td><td style='border:1px solid;'>Tác giả hoặc đồng tác giả</td></tr>");
            if (chuyenGia.DeTaiCapNhaNuocList != null)
            {
                foreach (var deTai in chuyenGia.DeTaiCapNhaNuocList)
                {
                    sbHmtl.AppendFormat("<tr><td style='border:1px solid;'>{0}</td><td style='border:1px solid;'>{1}</td><td style='border:1px solid;'>{2}</td><td style='border:1px solid;'>{3}</td></tr>",
                        deTai.TenDeTai, deTai.TenChuyenNganh, deTai.NamThucHien, deTai.TacGia);
                }
            }
            sbHmtl.Append("</table>");
            sbHmtl.Append("</td></tr>");

            sbHmtl.Append("<tr><td colspan='2' style='margin-top:10px;'>Dự án/đề tài cấp tỉnh đã thực hiện:</td></tr>");
            sbHmtl.Append("<tr><td colspan='2'>");
            sbHmtl.Append("<table cellpadding='0' cellspacing='0' width='97%' style='border-collapse:collapse;'>");
            sbHmtl.Append("<tr style='text-align: center;'><td style='border:1px solid;'>Tên dự án/đề tài</td><td style='border:1px solid;'>Tỉnh/thành phố</td><td style='border:1px solid;'>Năm thực hiện</td><td style='border:1px solid;'>Tác giả hoặc đồng tác giả</td></tr>");
            if (chuyenGia.DeTaiCapTinhList != null)
            {
                foreach (var deTai in chuyenGia.DeTaiCapTinhList)
                {
                    sbHmtl.AppendFormat("<tr><td style='border:1px solid;'>{0}</td><td style='border:1px solid;'>{1}</td><td style='border:1px solid;'>{2}</td><td style='border:1px solid;'>{3}</td></tr>",
                        deTai.TenDeTai, deTai.TenTinhThanhPho, deTai.NamThucHien, deTai.TacGia);
                }
            }
            sbHmtl.Append("</table>");
            sbHmtl.Append("</td></tr>");

            sbHmtl.Append("<tr><td colspan='2' style='margin-top:10px;'>Giải thưởng về KH&CN (từ trước đến nay):</td></tr>");
            sbHmtl.Append("<tr><td colspan='2'>");
            sbHmtl.Append("<table cellpadding='0' cellspacing='0' width='97%' style='border-collapse:collapse;'>");
            sbHmtl.Append("<tr style='text-align: center;'><td style='border:1px solid;'>Hình thức và nội dung giải thưởng</td><td style='border:1px solid;'>Năm tặng thưởng</td></tr>");
            if (chuyenGia.GiaiThuongKhcnList != null)
            {
                foreach (var giaiThuong in chuyenGia.GiaiThuongKhcnList)
                {
                    sbHmtl.AppendFormat("<tr><td style='border:1px solid;'>{0}</td><td style='border:1px solid;'>{1}</td></tr>",
                        giaiThuong.NoiDung, giaiThuong.NamTangThuong);
                }
            }
            sbHmtl.Append("</table>");
            sbHmtl.Append("</td></tr>");

            sbHmtl.Append("<tr><td colspan='2'>Thành tựu hoạt động KH&CN khác:</td></tr>");
            sbHmtl.AppendFormat("<tr><td colspan='2'>{0}</td></tr>", chuyenGia.ThanhTuuKhcnKhac);

            sbHmtl.Append("</table>");
            sbHmtl.Append("</body></html>");

            return sbHmtl.ToString();
        }
    }
}